L'objectif de cette activité est d'écrire un programme en langage Python permettant de compter le nombre d’occurrences d'une chaîne de caractères dans un texte donné.
Partie A - Nombre de lettres e dans une citation
Suivre les indications et rédiger un programme en langage Python permettant de compter le nombre de lettres e dans le texte suivant : «
Donnez-moi un point fixe et un levier et je soulèverai la Terre.
»
Voici une proposition de programme en langage Python qui réalise la tâche demandée.
texte="
Donnez-moi un point fixe et un levier et je soulèverai la Terre
"
a=0
nb_e=0
while a<len(texte):
if texte[a]=='e':
nb_e=nb_e+1
a=a+1
print(e)
1. Modifier le programme afin qu'il renvoie la fréquence d'apparition de la lettre e dans ce texte.
2. Tester la fréquence d'apparition de plusieurs lettres dans des textes en français puis en anglais. Comparer les résultats.
Le diagramme suivant montre la fréquence d'apparition des lettres dans plusieurs langues.
Partie B - Nombre de chiffres 3 dans une valeur approchée de
`\pi`
La chaîne de caractères suivante représente une valeur approchée de
`\pi`
comportant
`1 500`
décimales.
En adaptant le programme de la partie A, rédiger un programme en langage Python comptant le nombre de chiffres 3 présents dans cette chaîne de caractères.
texte="3,14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912983367336244065664308602139494639522473719070217986094370277053921717629317675238467481846766940513200056812714526356082778577134275778960917363717872146844090122495343014654958537105079227968925892354201995611212902196086403441815981362977477130996051870721134999999837297804995105973173281609631859502445945534690830264252230825334468503526193118817101000313783875288658753320838142061717766914730359825349042875546873115956286388235378759375195778185778053217122680661300192787661119590921642019893809525720106548586327886593615338182796823030195203530185296899577362259941389124972177528347913151557485724245415069595082953311686172785588907509838175463746493931925506040092770167113900984882401285836160356370766010471018194295559619894676783744944825537977472684710404753464620804668425906949129331367702898915210475216205696602405803815019351125338243003558764024749647326391419927260426992279678235478163600934172164121992458631503028618297455570674983 8505494588 5869269956 9092721079 7509302955 "
Il peut être intéressant de chercher des chaînes de plusieurs caractères à l'intérieur d'une chaîne donnée. Pour ce faire, il est possible d'utiliser la commande find, comme illustré dans le programme suivant.
1. #ici recopier texte
2. def trouve(txt):
3. pos = texte.find(txt)
4. if pos > -1:
5. print(txt)
6. print('le nombre est trouvé')
7. else:
8. print('le nombre n\'est pas trouvé')
9.
10. print('rentrer le nombre à chercher')
11. a=input()
12. trouve(a)
En utilisant le programme précédent et le texte contenant
`1 500`
décimales de
`\pi`
, tester la présence de chaînes à
`2`
chiffres puis à
`3`
chiffres à l'intérieur de texte.
Remarque
Plus on considère de décimales de
`\pi`
, plus on peut trouver de chaînes de caractères à
`n`
chiffres. On conjecture que
`\pi`
est un nombre univers, c'est-à-dire que la suite de ses décimales contient une infinité de séquences de décimales toutes différentes. Cette propriété de
`\pi`
n'est, pour le moment, pas démontrée.
Source : https://lesmanuelslibres.region-academique-idf.fr Télécharger le manuel : https://forge.apps.education.fr/drane-ile-de-france/les-manuels-libres/mathematiques-premiere-specialite ou directement le fichier ZIP Sous réserve des droits de propriété intellectuelle de tiers, les contenus de ce site sont proposés dans le cadre du droit Français sous licence CC BY-NC-SA 4.0